package com.apps.sworld;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import java.util.List;

/**
 * 所有脚本的父类,这里面的事件由框架本身执行
 * 所有的脚本都是在事件执行成功且完成后调用
 */
public interface sScript<T> extends sWorld {

   /**
    * 出生之前,具体为数据库表插入数据
    * @param t
    */
   default void onCreate(T t){}
   /**
    * 出生完毕
    * @param t
    */
   default void onCreated(T t){}
   /**
    * 更新之前
    * @param t
    */
   default void onUpdate(T t){}
   /**
    * 更新完毕
    * @param t
    */
   default void onUpdated(T t){}
   /**
    * 死亡,具体为数据库删除记录
    * @param wrapper
    */
   default void onDelete(QueryWrapper<T> wrapper){}
   /**
    * 死亡完毕
    * @param t
    */
   default void onDeleted(List<T> t){}
}
